1. Technical Field
The present invention relates generally to data processing and, in particular, to a system and method for employing externalized, dynamically configurable, cacheable trigger points, including specifying, applying, and managing the same.
2. Description of Related Art
The use of a trigger point (also referred to as a control point or a decision point) is a technique commonly employed to optimize reusability. Typically, a trigger point is a location in a flow of logic where a standardized piece of logic is installed to perform some reusable function. Often the trigger point logic appeals to some other entity to perform the reusable function. One simple example is that of a subroutine call in a main program, where the subroutine call, including the marshaling of parameters that are passed to the subroutine and the results that are returned from the subroutine, can be considered as a trigger point. Another example is that of an interactive debugger, where a debug trigger point can be placed in the application logic so as to cede control to the debugger.
In the context of externalized business rules, a trigger point object may perform the following functions: marshal parameters; find the set of rules that apply; filter (order, narrow, and so forth) the set of rules that apply; apply or fire the filtered set of rules (which may include rearrangement of parameters); and coalesce the results of firing the rules. In this case, the logic of the trigger point is much more complex than that of a subroutine or debugger call. Each step in the process is itself algorithmic in nature. For example, how to marshal parameters may vary from one trigger point to another trigger point. Similarly, how to establish the set of rules that apply may vary between different trigger points. Further, over time, the behavior of a trigger point (e.g., which algorithms the trigger point employs to carry out its chores) may need to be altered in a manageable way. Other contexts where trigger points invoke complex algorithms of constituent parts may exist now or at some future time.
Accordingly, it would be desirable and highly advantageous to have a system and method for externalized, dynamically configured, cacheable trigger points. Such a system and method should address the key problem of how to precisely govern trigger point behavior while simultaneously delivering optimal performance and maximal flexibility in behavior adaptation.